package cn.tedu.mybatis.mapper;

import cn.tedu.mybatis.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Mapper 注解由mybatis提供，用于描述数据层接口
 */
@Mapper
public interface UserMapper {//UserDao
    int insert(User user);
    /**
     * 基于用户查询用户信息，并且通过注解方式定义SQL映射。
     * @param username
     * @return
     */
    @Select(" select id,username,password,nickname,mobile,status " +
            "  from tb_users " +
           "  where username=#{username}")
    User selectByUsername(String username);

    /**基于创建时间(注册时间)查询用户信息*/
    List<User> list(String createdTime);

    /**
     * 修改多个用户状态
     * @param ids 用户id
     * @param status 用户状态
     * 当我们的方法中有多个参数时，建议使用@Param注解对参数进行描述
     *  ,然后在动态SQL中可以使用@Param注解中定义的参数值。
     * @return
     */
    int validById(@Param("ids") Integer[] ids, @Param("status") Integer status);

    /**更新用户信息*/
    int update(User user);
}
